#include <netinet/in.h>
#include <sys/types.h>
#define BUFFER_SIZE 16000

struct Server                       //Server服务器结构体
{
    int domain;                     //地域号
    int port;                       //端口号
    int service;                    //服务号，此处可以区分是TCP（SOCK_STREAM）还是UDP（SOCK_DGRAM）
    int protocol;                   //协议号
    int backlog;                    //监听数量，作用是在指定服务器在拒绝连接之前，允许积压的最大连接请求数
    u_long interface;               //IP地址

    int socket;                     //服务器的套接字
    struct sockaddr_in address;     //服务器的sockaddr_in结构体

    void (*launch)(struct Server *server);  //服务器启动之后，要执行的任务（此处为HTTP服务器）
};

struct Server server_Constructor(int domain, int port, int service, int protocol, int backlog, u_long interface, void (*launch)(struct Server *server));    //服务器的构造函数
void launch(struct Server *server);    //服务器的启动函数